package top.infopub.mgr.bpa.dao;


import java.math.BigDecimal;
import java.util.List;

import org.apache.ibatis.annotations.Param;

import top.infopub.generic.GenericDao;
import top.infopub.mgr.bpa.domain.ContractExtDetailAndSubDomain;
import top.infopub.model.bpa.ContractExtDetail;


/** 承接协议清单分解子项费用明细(BPA_CONTRACT_EXT_DETAIL) **/
public interface ContractExtDetailDao extends GenericDao<ContractExtDetail, String> {

    /**
     * 批量添加承继协议清单分解子项费用明细
     */
    void insertByBatch(@Param("list") List<ContractExtDetail> contractExtDetails);

    /**
     * 根据承继协议id查询分解清单子项费用明细
     */
    List<ContractExtDetail> selectByContractExtDetailId(@Param("contractExtId") String contractExtId);

    /**
     * 根据承继协议id查询分解清单子项费用明细和子项信息
     */
    List<ContractExtDetailAndSubDomain> selectDetailAndSub(@Param("contractExtId") String contractExtId,
                                                           @Param("feeType1") String feeType1,
                                                           @Param("feeType3") String feeType3,
                                                           @Param("feeSmallType1") String feeSmallType1,
                                                           @Param("feeSmallType2") String feeSmallType2,
                                                           @Param("levels") String levels);
    /**
     * 根据承继协议id查询分解清单子项费用明细和子项信息及下浮金额
     */
    List<ContractExtDetailAndSubDomain> selectDetailAndSubDomain(@Param("contractExtId") String contractExtId);

    /**
     * 查询项目合同_对外建安费(元)(下浮前)和总包合同_对外建安费(元)(下浮前)
     */
    BigDecimal selectByDetailAmount(@Param("extSubId")String extSubId);
    
    /**
     * 查询项目合同_对外建安费(元)(下浮前)和总包合同_对外建安费(元)(下浮前)和合同总价(元)(下浮前)
     * @param contractExtId
     * @return 
     * @see
     */
    BigDecimal selectByDetailAmountSum(@Param("contractExtId")String contractExtId);

}